package cn.csc.module.pay.controller.admin.bank.vo;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.math.BigInteger;

/**
* 资金账户绑定的银行卡 Base VO，提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
*/
@Data
public class PayBankBaseVO {

    @ApiModelProperty(value = "商户编号", required = true)
    @NotNull(message = "商户编号不能为空")
    private BigInteger merchantId;

    @ApiModelProperty(value = "第三方用户id")
    private String appUserId;

    @ApiModelProperty(value = "会员名称")
    private String memberName;

    @ApiModelProperty(value = "会员证件类型")
    private String memberGlobalType;

    @ApiModelProperty(value = "会员证件号码")
    private String memberGlobalId;

    @ApiModelProperty(value = "银行卡号")
    private String memberAcctNo;

    @ApiModelProperty(value = "银行名称")
    private String bankName;

    @ApiModelProperty(value = "银行类型,1：本行 2：他行")
    private Integer bankType;

    @ApiModelProperty(value = "开户行支行名称 如:“中国工商银行股份有限公司北京樱桃园支行”")
    private String acctOpenBranchName;

    @ApiModelProperty(value = "大小额行号")
    private String cnapsBranchId;

    @ApiModelProperty(value = "超级网银行号")
    private String eiconBankBranchId;

    @ApiModelProperty(value = "银行卡的预留手机号")
    private String mobile;

    @ApiModelProperty(value = "是否个体工商户,1：是 2：否")
    private Integer indivBusinessFlag;

    @ApiModelProperty(value = "公司名称")
    private String companyName;

    @ApiModelProperty(value = "公司证件类型")
    private String companyGlobalType;

    @ApiModelProperty(value = "公司证件号码")
    private String companyGlobalId;

    @ApiModelProperty(value = "店铺id")
    private String shopId;

    @ApiModelProperty(value = "店铺名称")
    private String shopName;

    @ApiModelProperty(value = "法人标志,1-是")
    private Integer repFlag;

    @ApiModelProperty(value = "法人名称")
    private String reprName;

    @ApiModelProperty(value = "法人证件类型")
    private String reprGlobalType;

    @ApiModelProperty(value = "法人证件号码")
    private String reprGlobalId;

    @ApiModelProperty(value = "绑定是否成功，1成功，0不成功")
    private Integer state;
    @ApiModelProperty(value = "1个人绑定6238，2对公账号6240")
    private BigInteger bindBankType;

    @ApiModelProperty(value = "是否存在经办人,1-是  2-否")
    private BigInteger agencyClientFlag;

    @ApiModelProperty(value = "经办人姓名,可选是否存在经办人AgencyClientFlag=1时必输")
    private String agencyClientName;
    @ApiModelProperty(value = "经办人证件类型,可选是否存在经办人AgencyClientFlag=1时必输")
    private String agencyClientGlobalType;
    @ApiModelProperty(value = "经办人证件号,可选是否存在经办人AgencyClientFlag=1时必输")
    private String agencyClientGlobalId;
    @ApiModelProperty(value = "经办人手机号,可选是否存在经办人AgencyClientFlag=1时必输")
    private String agencyClientMobile;

    @ApiModelProperty(value = "流水号")
    private String cnsmrSeqNo;

}
